 // 封装倒计时函数  
export function startCountdown(payTimeStr, callback) {  
  // 解析服务器返回的日期时间字符串  
  const payTime = new Date(payTimeStr);  
    
  // 获取当前时间  
  const now = new Date();  
    
  // 计算时间差（毫秒）  
  const diff = payTime - now;  
    
  // 如果时间已经过去，则立即调用回调函数  
  if (diff <= 0) {  
    callback();  
    return;  
  }  
    
  // 倒计时更新函数  
  function updateCountdown() {  
    // 获取剩余时间（毫秒）  
    const remaining = payTime - new Date();  
      
    // 如果时间已经过去，则停止倒计时并调用回调函数  
    if (remaining <= 0) {  
      clearInterval(countdownInterval);  
      callback();  
      return;  
    }  
      
    // 转换为天、时、分、秒  
    const days = Math.floor(remaining / (1000 * 60 * 60 * 24));  
    const hours = Math.floor((remaining % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));  
    const minutes = Math.floor((remaining % (1000 * 60 * 60)) / (1000 * 60));  
    const seconds = Math.floor((remaining % (1000 * 60)) / 1000);  
      
    // 在这里你可以更新UI或使用这些值进行其他操作  
    console.log(`${days}天 ${hours}时 ${minutes}分 ${seconds}秒`);  
	return `${days}天 ${hours}时 ${minutes}分 ${seconds}秒`;
  }  
    
  // 设置定时器，每秒更新一次倒计时  
  const countdownInterval = setInterval(updateCountdown, 1000);  
    
  // 立即执行一次以显示初始倒计时  
  updateCountdown();  
}  



// 使用示例  
// const payTimeStr = "2024-06-11 17:50:53";  
// startCountdown(payTimeStr, () => {  
//   console.log('倒计时结束');  
//   // 在这里处理倒计时结束后的逻辑  
// });




// 辅助函数：将时间字符串的秒数设置为0  
function setSecondsToZero(timeStr) {  
    const parts = timeStr.split(':');  
    parts[2] = '00'; // 设置秒数为00  
    return parts.join(':');  
} 


export function calculateTimeDifference(orderTimeStr, payTimeStr) {  
	console.log('计算时间-->', orderTimeStr, payTimeStr)
    // 创建Date对象  
    // const orderTime = new Date(orderTimeStr);  
	const orderTime = new Date();  
    const payTime = new Date(payTimeStr);  
  
    // 检查时间是否有效  
    if (isNaN(orderTime.getTime()) || isNaN(payTime.getTime())) {  
        throw new Error('Invalid date strings');  
    }  
  
    // 计算时间差（毫秒）  
    const diffInMs = payTime - orderTime;  
  
    // 转换为秒  
    const diffInSeconds = diffInMs / 1000;  
  
    // 转换为分钟和秒  
    const diffInMinutes = diffInSeconds / 60;  
    const remainingSeconds = diffInSeconds % 60;  
  
    // 转换为小时、分钟和秒（注意：如果剩余时间超过24小时，这里只会显示小于24小时的部分）  
    const diffInHours = diffInMinutes / 60;  
    const finalMinutes = diffInMinutes % 60;  
  
	console.log("计算的结果", diffInHours, finalMinutes, remainingSeconds)
    // 返回结果  
    return {  
        hours: diffInHours,  
        minutes: finalMinutes,  
        seconds: remainingSeconds  
    };  
}  
  
// 示例数据  
// const data = {  
//     orderTime: "2024-06-12 16:16:48",  
//     payTime: "2024-06-12 16:17:48"  
// };  
// 调用函数并输出结果  
// const timeDifference = calculateTimeDifference(data.orderTime, data.payTime);  
// console.log(`Time difference: ${timeDifference.hours}h ${timeDifference.minutes}m ${timeDifference.seconds}s`);  
// 应该输出: Time difference: 0h 1m 0s